Android使用高德地图实现运动轨迹绘制和轨迹回放 您所在的位置:网站首页 高德地图 绘制轨迹图怎么弄 Android使用高德地图实现运动轨迹绘制和轨迹回放

Android使用高德地图实现运动轨迹绘制和轨迹回放

2024-07-16 15:45| 来源: 网络整理| 查看: 265

功能的实现完全是使用高德地图进行实现的,先看一下效果图吧!

下图是在绘制轨迹的过程:

下图是在轨迹回放的过程:

 下图是记录运动的时间区间:

其实这个实现起来还是很容易的,总体逻辑就是:定位——记录坐标——绘制轨迹

一、定位

AMapLocation   mlocationClient = new AMapLocationClient(getActivity());         // 初始化定位参数         mLocationOption = new AMapLocationClientOption();         // 设置定位监听         mlocationClient.setLocationListener(this);         // 设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式         mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors);         // 设置定位间隔,单位毫秒,默认为2000ms         mLocationOption.setInterval(5000);         mLocationOption.setOnceLocation(false);         //设置是否返回地址信息(默认返回地址信息)         mLocationOption.setNeedAddress(true);         // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,         // 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求         // 在定位结束后,在合适的生命周期调用onDestroy()方法         // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除         // 启动定位         mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.Sport);  mlocationClient.setLocationOption(mLocationOption);                     //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效  mlocationClient.stopLocation();  mlocationClient.startLocation();

 二、记录坐标

对于记录坐标就需要使用服务端的接口来实现,通过定位之后记录当前的经纬度坐标,然后记录应用户的信息进行保存就可以了;

坐标在记录的时候可以设置定位的时间间隔,假如运动的区间很小的话可以吧定位的时间设置的小一些,这样在绘制轨迹的时候轨迹会平滑一些

三、轨迹绘制

 1:初始化线条样式

texTuresList.add(BitmapDescriptorFactory.fromResource(R.drawable.map_alr)); texTuresList.add(BitmapDescriptorFactory.fromResource(R.drawable.custtexture)); texTuresList.add(BitmapDescriptorFactory.fromResource(R.drawable.map_alr_night)); //指定某一段用某个纹理,对应texTuresList的index即可, 四个点对应三段颜色 texIndexList.add(0); texIndexList.add(2); texIndexList.add(1); options = new PolylineOptions(); options.width(30);//设置宽度 //加入对应的颜色,使用setCustomTextureList 即表示使用多纹理; options.setCustomTextureList(texTuresList); //设置纹理对应的Index options.setCustomTextureIndex(texIndexList); mUiSettings = aMap.getUiSettings();//实例化UiSettings类对象 mUiSettings.setZoomControlsEnabled(false); mUiSettings.setMyLocationButtonEnabled(false); //显示默认的定位按钮 aMap.setOnMyLocationChangeListener(this); aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false

 2:通过循环吧坐标设置到地图上

for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有